feat(uipath-agents): generate SubType metadata for bindings.json#379
feat(uipath-agents): generate SubType metadata for bindings.json#379cosmin-staicu merged 2 commits intomainfrom
Conversation
|
Claude finished @cosmin-staicu's task in 3m 27s —— View job PR #379 Review —
|
| Area | Status | Notes |
|---|---|---|
| Frontmatter | OK | No changes to SKILL.md frontmatter |
| E2E Tests | Issue | No new test task for SubType/credential-asset binding scenario |
| Skill Body | OK | Changes scoped to reference file, SKILL.md unchanged |
| References & Assets | Issue | Duplication between Step 2 and SubType Metadata section; large metadata.json could be trimmed |
| Repo Hygiene | OK | CODEOWNERS already covers /skills/uipath-agents/; no secrets; no cross-skill refs; changes scoped to the right skill |
Issues for Manual Review
- Domain accuracy of heuristics. The code-based disambiguation rules (e.g., type annotation
str→stringAsset, variable namedpassword→credentialAsset/secretAsset) are plausible but should be validated against real-world agent codebases. The distinction betweencredentialAssetandsecretAssetbased solely on variable naming may produce false positives. - Virtual-resource fallback kinds. The static fallback list (
app, asset, bucket, process, queue, taskCatalog, trigger) should be verified against the actualuipathCLI version 2.10.52+ behavior. - Metadata.json completeness. Verify the snapshot was taken from a representative tenant — it contains
remoteA2aAgent,appVersion,choiceSet,memorySpace, andwebhookkinds that are not referenced in the bindings documentation. Confirm these are expected in the metadata response.
Conclusion
The documentation changes are well-structured and the SubType feature is clearly motivated by a real uipath push failure mode. The primary concerns are:
- Medium: Duplication — the SubType lookup procedure is inlined in Step 2 when it should just reference the SubType Metadata section
- Medium:
metadata.jsonsize — 11K lines when the agent only needskind/typefrom each entry; the entitydefaultValueblobs are dead weight - Medium: No test task for the new credential-asset SubType behavior
Requesting changes on the duplication issue (#1) — it will cause maintenance drift. The metadata size (#2) is a strong recommendation but not blocking.
c742633 to
37f91a7
Compare
…p SubType, add test
- Trim assets/solutions/metadata.json (10,952 → 199 lines): the agent
only consumes {kind, type} from each entry; the embedded versions[]
blobs (with full entity schema defaultValues) were dead weight.
Wrap in {_snapshotDate, _source, _note, entries[]} so staleness is
auditable. Add a refresh recipe in bindings-reference.md.
- Collapse Step 2 SubType duplication in bindings-reference.md: the
block at lines 51-66 inlined the full lookup procedure that already
lives in the SubType Metadata section. Replace with a bridge that
keeps only the retrieve_credential* shortcut inline.
- Replace alpha.uipath.com example URL with cloud.uipath.com — alpha
is an env-specific UiPath internal domain.
- Shorten line 98 schema-rule SubType note to a pointer; it had been
near-verbatim of the Implications-for-binding-generation section.
- Add tests/tasks/uipath-agents/subtype_credential_asset/: agent
authors a minimal coded-agent layout with retrieve_credential_async
and runs the bindings sync; check verifies metadata.SubType ==
"credentialAsset" on the emitted binding.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…p SubType, add test
- Trim assets/solutions/metadata.json (10,952 → 199 lines): the agent
only consumes {kind, type} from each entry; the embedded versions[]
blobs (with full entity schema defaultValues) were dead weight.
Wrap in {_snapshotDate, _source, _note, entries[]} so staleness is
auditable. Add a refresh recipe in bindings-reference.md.
- Collapse Step 2 SubType duplication in bindings-reference.md: the
block at lines 51-66 inlined the full lookup procedure that already
lives in the SubType Metadata section. Replace with a bridge that
keeps only the retrieve_credential* shortcut inline.
- Replace alpha.uipath.com example URL with cloud.uipath.com — alpha
is an env-specific UiPath internal domain.
- Shorten line 98 schema-rule SubType note to a pointer; it had been
near-verbatim of the Implications-for-binding-generation section.
- Add tests/tasks/uipath-agents/subtype_credential_asset/: agent
authors a minimal coded-agent layout with retrieve_credential_async
and runs the bindings sync; check verifies metadata.SubType ==
"credentialAsset" on the emitted binding.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3d913f4 to
ad70932
Compare
…p SubType, add test
- Trim assets/solutions/metadata.json (10,952 → 199 lines): the agent
only consumes {kind, type} from each entry; the embedded versions[]
blobs (with full entity schema defaultValues) were dead weight.
Wrap in {_snapshotDate, _source, _note, entries[]} so staleness is
auditable. Add a refresh recipe in bindings-reference.md.
- Collapse Step 2 SubType duplication in bindings-reference.md: the
block at lines 51-66 inlined the full lookup procedure that already
lives in the SubType Metadata section. Replace with a bridge that
keeps only the retrieve_credential* shortcut inline.
- Replace alpha.uipath.com example URL with cloud.uipath.com — alpha
is an env-specific UiPath internal domain.
- Shorten line 98 schema-rule SubType note to a pointer; it had been
near-verbatim of the Implications-for-binding-generation section.
- Add tests/tasks/uipath-agents/subtype_credential_asset/: agent
authors a minimal coded-agent layout with retrieve_credential_async
and runs the bindings sync; check verifies metadata.SubType ==
"credentialAsset" on the emitted binding.
- Add "bindings" to SKILL.md description so the skill triggers on
bindings-related requests.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ad70932 to
6675b54
Compare
Align the bindings-reference with uipath-python PR #1584, which adds virtual-resource fallback to `uipath push` and reads `SubType` from binding metadata to create the right kind of placeholder. - Emit `SubType: "credentialAsset"` for `retrieve_credential*` calls - Add lookup procedure against Resource Builder metadata (live endpoint + bundled `assets/solutions/metadata.json` snapshot fallback) - Add code-based asset sub-type heuristics (type annotations, usage patterns, sensitive variable names) with AskUserQuestion fallback - Document which kinds support virtual-resource fallback on push vs which hard-fail (connection, mcpServer, index) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…p SubType, add test
- Trim assets/solutions/metadata.json (10,952 → 199 lines): the agent
only consumes {kind, type} from each entry; the embedded versions[]
blobs (with full entity schema defaultValues) were dead weight.
Wrap in {_snapshotDate, _source, _note, entries[]} so staleness is
auditable. Add a refresh recipe in bindings-reference.md.
- Collapse Step 2 SubType duplication in bindings-reference.md: the
block at lines 51-66 inlined the full lookup procedure that already
lives in the SubType Metadata section. Replace with a bridge that
keeps only the retrieve_credential* shortcut inline.
- Replace alpha.uipath.com example URL with cloud.uipath.com — alpha
is an env-specific UiPath internal domain.
- Shorten line 98 schema-rule SubType note to a pointer; it had been
near-verbatim of the Implications-for-binding-generation section.
- Add tests/tasks/uipath-agents/subtype_credential_asset/: agent
authors a minimal coded-agent layout with retrieve_credential_async
and runs the bindings sync; check verifies metadata.SubType ==
"credentialAsset" on the emitted binding.
- Add "bindings" to SKILL.md description so the skill triggers on
bindings-related requests.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
d9f0336 to
c6c71ce
Compare
* feat(uipath-agents): generate SubType metadata for bindings.json Align the bindings-reference with uipath-python PR #1584, which adds virtual-resource fallback to `uipath push` and reads `SubType` from binding metadata to create the right kind of placeholder. - Emit `SubType: "credentialAsset"` for `retrieve_credential*` calls - Add lookup procedure against Resource Builder metadata (live endpoint + bundled `assets/solutions/metadata.json` snapshot fallback) - Add code-based asset sub-type heuristics (type annotations, usage patterns, sensitive variable names) with AskUserQuestion fallback - Document which kinds support virtual-resource fallback on push vs which hard-fail (connection, mcpServer, index) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(uipath-agents): address PR #379 review — trim metadata.json, dedup SubType, add test - Trim assets/solutions/metadata.json (10,952 → 199 lines): the agent only consumes {kind, type} from each entry; the embedded versions[] blobs (with full entity schema defaultValues) were dead weight. Wrap in {_snapshotDate, _source, _note, entries[]} so staleness is auditable. Add a refresh recipe in bindings-reference.md. - Collapse Step 2 SubType duplication in bindings-reference.md: the block at lines 51-66 inlined the full lookup procedure that already lives in the SubType Metadata section. Replace with a bridge that keeps only the retrieve_credential* shortcut inline. - Replace alpha.uipath.com example URL with cloud.uipath.com — alpha is an env-specific UiPath internal domain. - Shorten line 98 schema-rule SubType note to a pointer; it had been near-verbatim of the Implications-for-binding-generation section. - Add tests/tasks/uipath-agents/subtype_credential_asset/: agent authors a minimal coded-agent layout with retrieve_credential_async and runs the bindings sync; check verifies metadata.SubType == "credentialAsset" on the emitted binding. - Add "bindings" to SKILL.md description so the skill triggers on bindings-related requests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: radu-mocanu <radu.mocanu@uipath.com>
Summary
uipath-agentsbinding skill with uipath-python PR #1584, which adds virtual-resource fallback touipath pushand readsSubTypefrom binding metadata to create the right kind of placeholder when the resource isn't found in the catalog.assets/solutions/metadata.jsonas an offline fallback for the authoritative live endpointhttps://<BASE_URL>/<ORG_ID>/studio_/backend/api/resourcebuilder/metadata.What changed
SubType: "credentialAsset"forsdk.assets.retrieve_credential*calls — definitive from method name.kind→ collect candidatetypevalues.retrieve*:str→stringAssetint→integerAssetbool→booleanAssetpassword,api_key,token, etc.) → likelycredentialAsset/secretAsset(confirm with user)AskUserQuestionfallback when heuristics are inconclusive — present candidatetypevalues with aNone / skipoption; preserve user-suppliedSubTypeon re-runs.app, asset, bucket, process, queue, taskCatalog, trigger) vs which hard-fail (connection,mcpServer,index).Why
Without
SubTypein metadata,uipath pushcreates virtual resource placeholders with only the base kind — producing plain string-asset placeholders for what should be credential assets, causing runtime failures when the agent expects a credential.Test plan
retrieve_credential_async— verify"SubType": "credentialAsset"is emitted in metadataretrieve_asyncreturning anint— verify theintegerAssetheuristic fires (or AskUserQuestion prompt appears with the candidate list)uipath pushagainst a project with a missing credential asset creates acredentialAssetvirtual placeholder (not a string asset)assets/solutions/metadata.jsonoffline (no live endpoint access)🤖 Generated with Claude Code